Benutzer:IvanP/Präzedenz
Üblicherweise werden binäre Operatoren zwischen die Operanden gesetzt. Dies ist als Infixnotation bekannt und sieht etwa so aus: :2 + 3 für +(2, 3) Ein Problem ergibt sich jedoch, wenn in einem Ausdruck mehrere solcher Operatoren auftreten. Dann stellt sich nämlich die Frage, was als Operand wovon zu werten ist. Für 2 − 3 + 4 · 5 ergeben sich etwa die Möglichkeiten: :a) ·(+(−(2, 3), 4), 5) = 15, :b) +(−(2, 3), ·(4, 5)) = 19, :c) ·(−(2, +(3, 4)), 5) = −25, :d) −(2, ·(+(3, 4), 5)) = −33, :e) −(2, +(3, ·(4, 5))) = −21. Um dem Abhilfe zu schaffen, können wir Operanden einklammern: (2 − 3) + 4 bedeutet etwa, dass 2 − 3 als Operand zu werten ist; als zweiter Summand ergibt sich die 4; sie braucht nicht eingeklammert zu werden. Für unsere Möglichkeiten bedeutet das: :a) ((2 − 3) + 4) · 5 = 15, :b) (2 − 3) + (4 · 5) = 19, :c) (2 − (3 + 4)) · 5 = −25, :d) 2 − ((3 + 4) · 5) = −33. :e) 2 − (3 + (4 · 5)) = −21. Damit es für spezielle Ausdrücke aber nicht zu umständlich wird, haben wir für unsere Operatoren eine Präzedenz festgelegt: Die Operatoren mit der höchsten Präzedenz sollen mit ihren Operanden als Operand gewertet werden. In unserem Fall hat die Multiplikation eine höhere Präzedenz als die Addition und Subtraktion und drei Ausdrücke reduzieren sich auf: :b) (2 − 3) + 4 · 5 = 19, :d) 2 − (3 + 4) · 5 = −33, :e) 2 − (3 + 4 · 5) = −21. Hinzu kommt eine Assoziativität, in unserem Fall die Linksassoziativität: Treffen Addition und Subtraktion aufeinander, ist von links nach rechts zu klammern. Zwei Ausdrücke reduzieren sich auf: :a) (2 − 3 + 4) · 5 = 15, :b) 2 − 3 + 4 · 5 = 19. Dies zu den Grundlagen. In diesem Artikel werden die genauen Regeln für die Präzedenz und Assoziativität dargestellt und gezeigt, welche Möglichkeiten noch bestehen. Assoziativität Bei gleichrangigen Operatoren gilt Linksassoziativität, was unserer Leserichtung entspricht, mit zwei Ausnahmen: * Es wird oft festgelegt, Brüche der Form a''/''bc als a''/(''bc) zu werten; allerdings auch nur, wenn ein Multiplikationszeichen weggelassen wird. * Potenzen sind als rechtsassoziativ definiert; sonst lassen sie sich nämlich mit einem Produkt im Exponenten vereinfachen. Präzedenz In absteigender Reihenfolge: # Potenzierung # Multiplikation, Division („Punktrechnung“) # Addition, Subtraktion („Strichrechnung“) Obwohl die Multiplikation auch mit einem Kreuz (×) geschrieben werden kann und die Division mit einem Schrägstrich (/), hat sich für die untersten beiden Operationen der Merksatz „Punkt(rechnung) vor Strich(rechnung)“ eingebürgert. Zu den englischsprachigen Eselsbrücken zählen: * PEMDAS = Please Excuse My Dear Aunt Sally = Parantheses, Exponentiation, Multiplication, Division, Addition, Subtraction * BEDMAS = Brackets, Exponentiation, Division, Multiplication, Addition, Subtraction Da dabei nicht deutlich wird, dass Multiplikation und Division sowie Addition und Subtraktion gleichrangig sind, gibt es als Alternative etwa: * PEMDAS = Pandas Eat: Mustard on Dumplings, and Apples with Spice Gemischte Brüche der Art a \frac{b}{c} werden stets als zusammengehörig interpretiert. Es gilt zum Beispiel: : -1 \frac{1}{2} = -1{,}5 : -1 + \frac{1}{2} = 0{,}5 Wobei für die unären Operatoren + und − die gleiche Präzedenz gilt wie für die binären. Es sei aber darauf hingewiesen, dass gemischte Brüche ohne nähere Erläuterung als Produkt missverstanden werden können. Andere unäre Operatoren wie %, log, ! etc. können keine binären Operatoren aufnehmen: 1 + 2% = 1 + 0,02 = 1,02; nicht (1 + 2)% = 3% = 0,03. folgt